#ifndef TOOLBASE_H
#define TOOLBASE_H

class GraphicsView;

class QUINCE_GUI_EXPORT ToolBase
{
public:
    virtual ~ToolBase();

    //virtual QString name() const = 0;
    virtual QString group() const;
    virtual QString iconPath() const;
    virtual QString toolTip() const;
    virtual QCursor cursor() const;
    virtual vector<unsigned int> hotkey() const;
    virtual void reset();
    virtual void mousePressEvent(GraphicsView *, QMouseEvent *);
    virtual void mouseReleaseEvent(GraphicsView *, QMouseEvent *);
    virtual void mouseMoveEvent(GraphicsView *, QMouseEvent *);
    virtual void mouseDoubleClickEvent(GraphicsView *, QMouseEvent *);

    static const int snapSize;
protected:
    ToolBase(const QString &icon, const QString &grp);
private:
    QString m_icon;
    QString m_group;
};

#endif // TOOLBASE_H
